AWSのSecurity Groupの視覚化に便利なツール「aws_security_viz」
こんにちは、コカコーラ大好きカジです。
「規模が大きく大量のセキュリティグループを確認するのは面倒ですよね。」
マネージメントコンソールで名前で検索しながら確認・・・というか、自分もそんな感じです。
Security Groupを図で見れたら・・・と思って調べたら解決していた人がいました。感謝です。
aws_security_vizとは
現在のAWS上のSecurity Group構成を簡単に視覚化するツールです。(MITライセンスです)
anaynayak/aws-security-viz: Visualize your aws security groups.
前提条件
MacOSXでの利用法を記載します。 他のOSの場合は、Dockerで動作するようですので、上記URLのReadmeをご参照ください。
aws_security_vizのセットアップ
HomebrewとRubyが利用できる環境にあることが条件です。 私のRuby環境はrbenvを利用し、ruby 2.7.2p137で動作確認しております。
brew install graphviz gem install aws_security_viz
上記だけです。簡単ですね。
aws_security_vizの使いかた
AWS CLI(aws ec2 describe-security-groups)のJSON結果からSecurity Groupの図を生成
aws ec2 describe-security-groups > sg.json aws_security_viz -o sg.json -f viz.svg --color viz.svgをブラウザで開くと図でみれます。
私の検証環境で試し、一部を抜粋表示しています。マインドマップみたいですよね。
簡単ですよねぇ。ひかえめに言って最高じゃ無いですか?
直接AWSから情報取得してSecurity Groupの図を生成
aws_security_viz -a <your_aws_key> -s <your_aws_secret_key> -e <your_aws_session_token> --region=ap-northeast-1 -f viz.svg --color=true viz.svgをブラウザで開くと図でみれます。
「aws_session_token」はAssume Roleしている場合に利用します。 オプションでvpc指定も可能です。詳細は「-h」でオプション確認してください。 AWSキーやシークレットキー、セッショントークンが環境変数で設定済みの際には以下のスクリプトでできると思います。
$ cat create-viz.sh #!/bin/bash aws_security_viz --access-key=${AWS_ACCESS_KEY_ID} --secret-key=${AWS_SECRET_ACCESS_KEY} --session-token=${AWS_SESSION_TOKEN} --region=ap-northeast-1 --filename=viz.svg --color=true
Navigator Viewでの表示
上記の手順ではsvgファイルの形式の出力ですが、他の表示形式も可能です。
aws_security_viz -a <your_aws_key> -s <your_aws_secret_key> -e <your_aws_session_token> --region=ap-northeast-1 -f aws.json --renderer navigator 上記出力したファイルと同じディレクトリ上で以下を実行 ruby -run -e httpd -- -p 3000 ブラウザで以下のURLを開く http://localhost:3000/navigator.html#aws.json マウス操作できるビューで表示できます。
私の環境で試した表示サンプル。マウス操作で移動したり表示色を変更したり可能で便利です。
JSON Viewでの表示
Navigator ViewよりシンプルでSecurity Group 同士の関連がクリックした物だけ表示されるシンプルな図です。
aws_security_viz -a <your_aws_key> -s <your_aws_secret_key> -e <your_aws_session_token> --region=ap-northeast-1 -f aws.json --renderer json 上記出力したファイルと同じディレクトリ上で以下を実行 ruby -run -e httpd -- -p 3000 ブラウザで以下のURLを開く http://localhost:3000/view.html#aws.json マウス操作できるシンプルなビューで表示できます。
私の環境で試した表示サンプル。こんな感じ。セキュリティグループ間の関連のみが追えて良いです。
まとめ
aws_security_vizは、セキュリティグループをマインドマップみたいに見れるので、色々使えると思います。
参考元
anaynayak/aws-security-viz: Visualize your aws security groups.